Covid19 Analysis
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
from IPython.display import HTML
input_file = 'owid-covid-data.csv'
df = pd.read_csv(input_file)
df['ds'] = pd.to_datetime(df['date'], format="%d/%m/%Y")
df = df.sort_values(by=['ds'])
valuesToDrop = ['Asia', 'World', 'International', 'European Union', 'Europe', 'North America', 'Africa',
'South America', 'Oceania']
df1 = df[~(df['location'].isin(valuesToDrop))]
df1 = df1.dropna(subset=['new_cases'])
cases_dist = px.sunburst(df1, path=['continent', 'location'],
values = 'new_cases',
color='new_cases',
color_continuous_scale = px.colors.sequential.Magenta,
title = 'Covid cases distribution'
)
df2 = df.copy()
df2['ds'] = df2['ds'].astype(str)
fig = px.choropleth(df2,
locations='iso_code',
color='new_cases',
hover_name='location',
animation_frame="ds",
color_continuous_scale=px.colors.sequential.Reds)
df4 = df.groupby(by=['ds'])['new_cases'].sum().reset_index().sort_values(by='ds', ascending=True)
df4 = df4.rename(columns={'new_cases':'y'})
from prophet import Prophet
from prophet.plot import plot_plotly, plot_components_plotly, add_changepoints_to_plot
# instantiate the model, fit the timeseries to the model
model = Prophet().fit(df4)
# predict future cases
future = model.make_future_dataframe(periods=365)
forecast = model.predict(future)
fig = model.plot(forecast)
a = add_changepoints_to_plot(fig.gca(), model, forecast)
# fig;
m = Prophet(weekly_seasonality=False, changepoint_prior_scale=0.4, changepoint_range=0.8).fit(df4)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)
fig1 = m.plot(forecast, figsize=(20, 12))
ax = fig1.gca()
ax.set_title("Covid cases projection", size=24)
ax.set_xlabel('Date', size=20)
ax.set_ylabel('Cases', size=20)
ax.tick_params(axis="x", labelsize=18)
ax.tick_params(axis="y", labelsize=18)
ax.yaxis.get_major_formatter().set_scientific(False)